(stat): Treat UNC file names as residing on remote drives. (Bug#3542)
authorEli Zaretskii <eliz@gnu.org>
Thu, 9 Jul 2009 18:44:14 +0000 (18:44 +0000)
committerEli Zaretskii <eliz@gnu.org>
Thu, 9 Jul 2009 18:44:14 +0000 (18:44 +0000)
src/w32.c

index ef0272259c4366dab33023a448cb6e51ac673ce9..2a7be366aec0bb1fe445700ca58d95a74653269c 100644 (file)
--- a/src/w32.c
+++ b/src/w32.c
@@ -3347,11 +3347,13 @@ stat (const char * path, struct stat * buf)
        }
     }
 
-  /* GetDriveType needs the root directory of NAME's drive.  */
-  if (!(strlen (name) >= 2 && IS_DEVICE_SEP (name[1])))
-    devtype = GetDriveType (NULL); /* use root of current diectory */
+  if (IS_DIRECTORY_SEP (name[0]) && IS_DIRECTORY_SEP (name[1]))
+    devtype = DRIVE_REMOTE;       /* assume UNC name is remote */
+  else if (!(strlen (name) >= 2 && IS_DEVICE_SEP (name[1])))
+    devtype = GetDriveType (NULL); /* use root of current drive */
   else
     {
+      /* GetDriveType needs the root directory of NAME's drive.  */
       strncpy (drive_root, name, 3);
       drive_root[3] = '\0';
       devtype = GetDriveType (drive_root);